Skip to main content

Services User

services-user (VMID 118, 10.0.0.18) hosts the user-facing web applications split off the legacy monolithic services VM (10.0.0.2).

Configured by ansible/hetzner-main/setup-services-user.yml; each app's Docker Compose definition lives under ansible/hetzner-main/services-user-apps/<app>/ in the automation repo.

Applications

AppNotes
abair_websiteabair.ie, plus a preview.abair.ie variant of the same image
litreoir
fotheidilFrontend for the Fotheidil subtitling tool; calls the recognition stack on Amergin
meallanoige
bat-mirialta
mileglornanogMíle Glór na nÓg
web_reader_extensionWebreader browser extension backend
geabaire-web-editoraac-editor.abair.ie
geabaire-apiStateful — has its own Postgres-backed data and Redis; the .env and board-image data are hand-placed, not templated by Ansible
giob-geabStateful — FastAPI + Celery worker/beat, its own Redis broker; .env hand-placed

Deploying apps

All apps in the list above deploy under the single apps playbook tag — make deploy-services-user-apps syncs each app's directory and runs docker compose pull && up -d for every one of them, without touching the VM's base configuration.

Firewall

The webserver VM may reach every app port (as the reverse-proxy ingress); the observability VM is also allowed through, since Uptime Kuma probes app ports directly to distinguish an app outage from an ingress outage.